package cn.xyhelp.shop.user.support;

/**
 * 错误码
 * 规范参考阿里巴巴Java开发手册
 *
 * @author violetfreesia
 * @date 2021-05-09
 */
public enum ErrorCode {
    /**
     * 没有错误
     */
    OK("一切ok"),

    /**
     * 用户端错误一级宏观码
     */
    A0001("用户端错误"),

    /**
     * 用户登录异常二级宏观码
     */
    A0200("用户登录异常"),

    A0201("用户未登录"),

    A0203("用户不存在"),

    A0204("用户创建错误"),

    A0251("角色错误"),

    A0252("服务员不存在"),

    A0253("门店不存在"),

    A0254("区域不存在"),

    A0255("门店异常"),

    A0256("服务员已存在"),

    A0257("区域不存在"),

    A0258("区域异常"),

    A0259("操作异常"),

    A0300("访问权限异常"),

    A0301("访问未授权"),

    A0312("无权限使用API"),

    A0230("用户登录已过期"),

    A0500("用户请求异常"),

    A0501("请求参数错误"),

    A0506("用户重复请求"),

    A0600("请求的资源异常"),

    A0601("请求的资源不存在"),

    A0602("商品已下架"),

    A0603("SKU库存不足"),


    A0605("资源类型不正确"),

    A0606("资源存在联系"),


    /**
     * 商店
     */
    A0700("商店异常"),

    A0701("商店不存在"),
    /**
     * 商品分类
     */
    A0710("商品分内异常"),

    A0711("商品分类不存在"),

    A0712("分类下存在商品"),

    A0713("分类名不能为空"),
    /**
     * 商品
     */
    A0720("商品异常"),

    A0721("商品不存在"),

    A0722("已有订单包含商品该"),

    A0723("购物车中拥有该商品"),

    A0724("Sku不存在"),

    A0725("商品未下架"),

    A0726("商品已有保修信息"),

    A0727("保修信息不存在"),

    A0728("商品已下架"),

    A0729("订单子项不存在"),
    A0730("订单不存在"),

    A0741("部门不存在"),
    /**
     * 知行币
     */
    A0800("知行币异常"),

    A0801("金额小于抵扣知行币"),

    /**
     * 订单
     */
    A0900("订单异常"),

    A0901("订单子项未找到"),

    A0930("购物车不存在"),

    A0931("二维码已失效"),

    A0932("收货地址不存在"),

    A0940("购物车数量超出限制"),

    A0933("缺少参数：付款方式"),

    A0934("缺少参数：领导签名"),

    A0935("下单sku不属于同一门店"),

    A0936("订单为未知类型"),

    A0937("下单数量异常"),

    A0938("库存少于下单数量"),

    A0939("部门不存在"),

    /**
     * 取消订单（仅取消 微信支付待付款，现金和部门支付未完成）
     */
    A0941("订单不符合取消规则"),

    A0942("获取微信支付错误"),


    /**
     * 资源大类
     */
    A1000("资源异常"),

    /**
     * 资源类别
     */
    A1010("资源类别异常"),

    A1011("资源类别不存在"),

    A1012("资源关键字重复"),

    A1013("资源删除失败"),

    A1014("资源修改失败"),

    /**
     * 资源
     */
    A1020("资源异常"),

    A1021("资源不存在"),

    A1022("存在资源通道使用该资源"),

    /**
     * 资源通道
     */
    A1030("资源通道异常"),

    A1031("资源通道不存在"),

    A1032("资源通道已存在"),

    /**
     * 通道类别
     */
    A1040("通道类别异常"),

    A1041("通道类别不存在"),

    A1042("通道类别存在资源"),

    /**
     * 系统错误一级宏观码
     */
    B0001("系统执行出错"),

    B0201("重加载串行缓存区失败"),

    B0202("json数据反序列化出错"),

    B0203("序列化出错"),

    /**
     * Redis相关二级宏观码
     */
    B0100("Redis错误"),

    B0101("Redis繁忙"),

    B0301("加锁失败"),

    B0400("权限认证异常"),

    B0401("认证服务异常"),

    B0402("授权服务异常"),
    ;


    /**
     * 错误码描述
     */
    private final String description;

    ErrorCode(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }
}
